home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / genie-commodore-file-library / C64-128Toolkit / GCR_READ.ARC / RD TRK 8 (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  4.6 KB  |  162 lines

  1. 80 ;RD TRK 8
  2. 95 ;CONVERT 5 BYTES GCR TO 4 BYTES HEX
  3. 96 ;FOR EXAMPLE WE'LL USE #$'S 52 56 E5 29 6B
  4. 100 GCR LDA #$00;SET ZERO PAGE INDEX ADDRESSES
  5. 110 STA Z1
  6. 120 STA Z4
  7. 130 STA Z3
  8. 140 LDA #>GCR1
  9. 150 STA Z2
  10. 160 L1 JSR AA
  11. 170 STY Z4
  12. 180 CPY #$CC; 1ST 204 BYTES
  13. 190 BNE L1
  14. 260 LDA #$00
  15. 270 STA Z1
  16. 280 STA Z4
  17. 290 STA Z3
  18. 300 LDY #$FF
  19. 310 LDX #$00
  20. 320 TR LDA GCR1,Y; MOVE LAST 102 BYTES TO CONVERT
  21. 330 STA GCR1,X
  22. 335 LDA #>GCR1:CLC:ADC #$01:STA TR+2
  23. 340 INY:INX
  24. 350 BNE TR
  25. 355 LDA #$CC
  26. 360 STA R1+1:STA R2+1:STA R3+1:STA R4+1
  27. 370 L2 JSR AA
  28. 375 STY Z4
  29. 380 CPY #$CC
  30. 385 BNE L2
  31. 390 LDA #$00
  32. 400 STA R1+1:STA R2+1:STA R3+1:STA R4+1
  33. 405 LDA #>GCR1:STA TR+2
  34. 410 WRK RTS
  35. 440 AA LDY Z3;= EQUALS ZERO
  36. 445 ;(Z1),Y POINTS TO $7D00,Y
  37. 450 LDA (Z1),Y;  #$52  01010010
  38. 460 AND #$F8;          11111000
  39. 462 ;RESULT---------------------------------------01010000
  40. 470 LSR;               00101000
  41. 471 LSR;               00010100
  42. 472 LSR;               00001010  = #$0A
  43. 480 STA GCR3;$7A00
  44. 490 LDA (Z1),Y;  #$52  01010010
  45. 500 AND #$07;          00000111
  46. 501 ;RESULT---------------------------------------00000010
  47. 510 ASL;               00000100
  48. 511 ASL;               00001000  = #$08
  49. 520 STA GCR3+1;$7A01
  50. 530 INY
  51. 540 LDA (Z1),Y;  #$56  01010110
  52. 550 AND #$C0;          11000000
  53. 551 ;RESULT---------------------------------------01000000
  54. 555 ; CARRY FLAG NOT CLEARED A 1 WILL BE CARRIED
  55. 560 ROL;               10000000
  56. 561 ROL;               00000000
  57. 562 ROL;               00000001
  58. 570 ORA GCR3+1;  #$08  00001000
  59. 575 ;RESULT---------------------------------------00001001  = #$09
  60. 580 STA GCR3+1
  61. 590 LDA (Z1),Y;  #$56  01010110
  62. 600 AND #$3E;          00111110
  63. 601 ;RESULT---------------------------------------00010110
  64. 610 LSR;               00001011  = #$0B
  65. 620 STA GCR3+2;$7A02
  66. 630 LDA (Z1),Y;  #$56  01010110
  67. 640 AND #$01;          00000001
  68. 645 ;RESULT---------------------------------------00000000
  69. 650 ASL;               00000000
  70. 651 ASL;               00000000
  71. 652 ASL;               00000000
  72. 653 ASL;               00000000  = #$00
  73. 660 STA GCR3+3;$7A03
  74. 670 INY
  75. 680 LDA (Z1),Y;  #$E5  11100101
  76. 690 AND #$F0;          11110000
  77. 695 ;RESULT---------------------------------------11100000
  78. 700 LSR;               01110000
  79. 701 LSR;               00111000
  80. 702 LSR;               00011100
  81. 703 LSR;               00001110  = #$0E
  82. 710 ORA GCR3+3;        00000000
  83. 715 ;RESULT---------------------------------------00001110  = #$0E
  84. 720 STA GCR3+3;$7A03
  85. 730 LDA (Z1),Y;  #$E5  11100101
  86. 740 AND #$0F;          00001111
  87. 745 ;RESULT---------------------------------------00000101
  88. 750 ASL;               00001010  = #$0A
  89. 760 STA GCR3+4;$7A04
  90. 770 INY
  91. 780 LDA (Z1),Y;  #$29  00101001
  92. 790 AND #$80;          10000000
  93. 795 ;RESULT---------------------------------------00000000
  94. 800 CLC
  95. 810 ROL;               00000000
  96. 811 ROL;               00000000
  97. 820 ORA GCR3+4;  #$0A  00001010
  98. 825 ;RESULT---------------------------------------00001010  = #$0A
  99. 830 STA GCR3+4;$7A04
  100. 840 LDA (Z1),Y;  #$29  00101001
  101. 850 AND #$7C;          01111100
  102. 855 ;RESULT---------------------------------------00101000
  103. 860 LSR;               00010100
  104. 861 LSR;               00001010  = #$0A
  105. 870 STA GCR3+5;$70A5
  106. 880 LDA (Z1),Y;  #$29  00101001
  107. 890 AND #03;           00000011
  108. 895 ;RESULT---------------------------------------00000001
  109. 900 ASL;               00000010
  110. 901 ASL;               00000100
  111. 902 ASL;               00001000  = #$08
  112. 910 STA GCR3+6;$7A06
  113. 920 INY
  114. 930 LDA (Z1),Y;  #$6B  01101011
  115. 940 AND #$E0;          11100000
  116. 945 ;RESULT---------------------------------------01100000
  117. 950 ROL;               11000000
  118. 951 ROL;               10000000
  119. 952 ROL;               00000001
  120. 953 ROL;               00000011
  121. 960 ORA GCR3+6;  #$08  00001000
  122. 965 ;RESULT---------------------------------------00001011  = #$0B
  123. 970 STA GCR3+6;$7A06
  124. 980 LDA (Z1),Y;  #$6B  01101011
  125. 990 AND #$1F;          00011111
  126. 995 ;RESULT---------------------------------------00001011  = #$0B
  127. 1000 STA GCR3+7;$7A07
  128. 1010 INY
  129. 1020 STY Z3
  130. 1030 LDY Z4
  131. 1040 LDX GCR3;   #$0A
  132. 1050 LDA GCR4,X; #$00  00000000
  133. 1060 LDX GCR3+1; #$09
  134. 1070 ORA GCR5,X; #$08  00001000
  135. 1075 ;RESULT-------------------------------------00001000  = #$08 HEADER ID
  136. 1080 R1 STA HEX,Y
  137. 1090 INY
  138. 1100 LDX GCR3+2; #$0B
  139. 1110 LDA GCR4,X; #$10  00010000
  140. 1120 LDX GCR3+3; #$0E
  141. 1130 ORA GCR5,X;       00000100
  142. 1135 ;RESULT-------------------------------------00010100  = #$14 CHECKSUM
  143. 1140 R2 STA HEX,Y
  144. 1150 INY
  145. 1160 LDX GCR3+4; #$0A
  146. 1170 LDA GCR4,X; #$00  00000000
  147. 1180 LDX GCR3+5; #$0A
  148. 1190 ORA GCR5,X;       00000000
  149. 1195 ;RESULT-------------------------------------00000000  = #$00 SECTOR
  150. 1200 R3 STA HEX,Y
  151. 1210 INY
  152. 1220 LDX GCR3+6; #$0A
  153. 1230 LDA GCR4,X; #$10  00010000
  154. 1240 LDX GCR3+7; #$0B
  155. 1250 ORA GCR5,X;       00000001
  156. 1255 ;RESULT-------------------------------------00010001  = #$11 TRACK
  157. 1260 R4 STA HEX,Y
  158. 1270 INY
  159. 1280 STY Z4
  160. 1340 RTS
  161. 1350 .FILE RD TRK 9
  162.